package menu.mensajero;

import comunicacion.Comunicacion;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;

/**
 * Clase que se encarga de representar el chat entre mesas.
 * @author JSR
 * @version $Id: Mensajero.java 65 2010-10-06 19:46:01Z lopezandres2002@hotmail.com $
 */
public class Mensajero
{
    //---------------------------------------
    // Atributos
    //---------------------------------------

    /**
     * Los mensajes enviados
     */
    private Collection<Mensaje> mensajesEnviados;
    /**
     * Los mensajes recibidos
     */
    private Collection<Mensaje> mensajesRecibidos;
    /**
     * Instancia de la comunicación
     */
    private Comunicacion comunicacion;

    //---------------------------------------
    // Constructor
    //---------------------------------------
    /**
     * Constructor de la clase <code>Mensajero</code>
     * @param comunicacion - Clase que se encarga de la comunicación
     */
    public Mensajero( Comunicacion comunicacion )
    {
        this.mensajesEnviados = new ArrayList<Mensaje>();
        this.mensajesRecibidos = new ArrayList<Mensaje>();
        this.comunicacion = comunicacion;
    }

    //---------------------------------------
    // Getters y Setters
    //---------------------------------------
    //---------------------------------------
    // Métodos
    //---------------------------------------
    /**
     * Agrega un nuevo mensaje recibido a la lista de mensajes recibidos
     * @param msj - Mensaje recibido
     */
    public void agregarNuevoMensajeRecibido( Mensaje msj )
    {
        mensajesRecibidos.add( msj );
    }

    /**
     * Agrega un nuevo mensaje a la lista de enviados y lo envía su correspondiente destinatario
     */
    public void enviarNuevoMensaje( String autor, String destino, String contenido )
    {
        Date fechaActual = new Date( System.currentTimeMillis() );
        // Agrega al registro de mensajes enviados
        Mensaje msj = new Mensaje();
        msj.setAutor( autor );
        msj.setContenido( contenido );
        msj.setFecha( fechaActual );
        mensajesEnviados.add( msj );

        comunicacion.enviarMensajeDeChat( msj, destino );
    }
}
